﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System.Collections.ObjectModel

Namespace roncliProductions.LibWowArmory.Character.Achievements

    ''' <summary>
    ''' A class that encapsulates an achievement category
    ''' </summary>
    ''' <remarks></remarks>
    Public Class CategoryInfo

        Private sSubcategories As Collection(Of SubcategoryInfo)

        ''' <summary>
        ''' The number of achievements earned in this category
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Earned As Integer

        ''' <summary>
        ''' The number of achievement points earned in this category
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property EarnedPoints As Integer

        ''' <summary>
        ''' The identification number of the category
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property CategoryID As Integer

        ''' <summary>
        ''' The category's name
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Name As String

        ''' <summary>
        ''' The subcategories contained in this category
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public ReadOnly Property Subcategories As Collection(Of SubcategoryInfo)
            Get
                Return sSubcategories
            End Get
        End Property

        ''' <summary>
        ''' The total number of achievements available to earn in this category
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property Total As Integer

        ''' <summary>
        ''' The total number of achievement points available to earn in this category
        ''' </summary>
        ''' <value></value>
        ''' <returns></returns>
        ''' <remarks></remarks>
        Public Property TotalPoints As Integer

        ''' <summary>
        ''' A constructor that creates a new achievement category
        ''' </summary>
        ''' <param name="intID"></param>
        ''' <param name="strName"></param>
        ''' <remarks></remarks>
        Public Sub New(ByVal intID As Integer, ByVal strName As String, ByVal sSubcategories As Collection(Of SubcategoryInfo))
            CategoryID = intID
            Name = strName
            Me.sSubcategories = sSubcategories
        End Sub

    End Class

End Namespace